export default {
  // 命名空间
  namespaced: true,
  state () {
    return {
      // Vuex里面的数据 在哪里存储的？
      // cookie localStorage sessionStorage？？？
      // 内存
    //   初始化 时 将本地存储的token赋值给vuex的token
      token: window.localStorage.getItem('token'),
      refreshToken: window.localStorage.getItem('refreshToken'),
      cancelTokenArr: []
    }
  },
  mutations: {
    pushCancelToken (state, src) {
      // 取消请求函数放入cancelTokenArr 数组中去
      state.cancelTokenArr.push(src.cancelToken)
    },
    clearToken (state) {
      state.cancelTokenArr.forEach((item) => {
        // item执行就是取消请求。
        item()
      })
      state.cancelTokenArr = []
    },
    setToken (state, token) {
      state.token = token
      window.localStorage.setItem('token', token)
    },
    setRefreshToken (state, refreshToken) {
      state.refreshToken = refreshToken
      window.localStorage.setItem('refreshToken', refreshToken)
    }
  },
  actions: {},
  getters: {}
}
